package com.yungu.swift.order.model.vo;

import com.yungu.swift.assets.driver.model.vo.DriverVo;
import com.yungu.swift.assets.passenger.model.vo.PassengerVo;
import com.yungu.swift.base.model.annotation.AbsoluteImgPath;
import com.yungu.swift.order.model.dto.OrderEvaluateDto;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 专快出租订单信息
 */
@Data
public class ApiOrderInfoVo implements Serializable {

    /**
     * 订单子状态
     **/
    private Integer subStatus;

    /**
     * 乘客投诉状态
     **/
    private Integer passengerCom = 0;
    /**
     * 司机投诉状态
     **/
    private Integer driverCom = 0;

    /**
     * 起点详细地址
     **/
    private String originDetailAddress;
    /**
     * 起点标题
     **/
    private String originAddress;
    /**
     * 起点经度
     **/
    private String originLng;
    /**
     * 起点纬度
     **/
    private String originLat;
    /**
     * 起点城市
     **/
    private String originCity;
    /**
     * 出发城市uuid
     */
    private String originCityUuid;
    /**
     * 目的地详细地址
     **/
    private String destDetailAddress;
    /**
     * 目的地标题
     **/
    private String destAddress;

    /**
     * 目的经度
     **/
    private String destLng;
    /**
     * 目的纬度
     **/
    private String destLat;
    /**
     * 目的城市
     **/
    private String destCity;

    /**
     * 订单类型（时效性）：1 实时订单， 2 预约订单
     **/
    private Integer typeTime;
    /**
     * 订单类型（行程）：1：用车，2：日租，3：半日租，4：送机，5：接机
     **/
    private Integer typeTrip;
    /**
     * 订单总费用（=司机收入=各费用之和*高峰溢价率+附加服务费等+（后台）调整价格）
     **/
    private Double totalFare;
    /**
     * 出发时间
     **/
    private Date deparTime;
    /**
     * 实际乘车人姓名
     **/
    private String actualPasNam;
    /**
     * 实际乘车人号码
     **/
    private String actualPasMob;
    /**
     * 实际乘车人数
     **/
    private Integer actualPasNum;

    /**
     * 评价信息
     **/
    private OrderEvaluateDto comment;
    /**
     * 调度费
     **/
    private Double tip;
    /**
     * 乘客留言
     **/
    private String remark;
    /**
     * 取消理由
     **/
    private String cancelReason;
    /**
     * 打车费
     **/
    private Double actualFare;

    /**
     * 最终车费
     **/
    private BigDecimal latestOrderFare;

    /**
     * 优惠券支付
     **/
    private Double couponFare;
    /**
     * 支付状态（0未支付 1已支付 2退款中 3已退款）
     **/
    private Integer payStatus;
    /**
     * 倒计时时间
     **/
    private Long countdown;
    /**
     * 是否超过24小时
     **/
    private int overTime;
    /**
     * 播报
     **/
    private String report;
    /**
     * 超时等待时长
     **/
    private Integer waitDuration;

    /**
     * 订单异常备注
     */
    private Integer typeAbnormal;
    /**
     * 优惠券的uuid
     **/
    private String couponUuid;

    /**
     * 订单主状态
     **/
    private Integer mainStatus;
    /**
     * （预约单）司机是否可以出发去接乘客（0:不可以；1:可以）
     **/
    private Integer canPickUp = 0;
    /**
     * 司机是否可以催促乘客付款（0:不可以；1:可以）
     **/
    private Integer canHurryPay = 0;

    /**
     * 调整费
     */
    private Double adjustFare;

    /**
     * 优惠金额
     */
    private Double couponPrice;

    /**
     * 预估行程
     **/
    private Double planTrip;

    /**
     * 航班号
     **/
    private String flightNumber;

    /**
     * 订单车型名称
     **/
    private String carModelName;

    /**
     * 实际接单司机
     **/
    private String driverUuid;

    /**
     * 退款金额
     **/
    private Double refundMoney;

    /**
     * 乘客主键ID
     **/
    private String passengerUuid;

    /**
     * gzip压缩之后的订单位置点字符串
     **/
    private String tracePoints;

    /**
     * 创建时间
     */
    private Date createOn;

    /**
     * appid
     */
    private String appid;

    /**
     * 订单标题提示
     **/
    private String title;

    /**
     * 司机名称
     */
    private String driverName;

    /**
     * 司机电话
     */
    private String driverMobile;

    /**
     * 司机分数
     */
    private Double driverScore;

    /**
     * 司机订单数
     */
    private Integer driverOrderCount;

    /**
     * 车牌号
     */
    private String carNo;

    /**
     * 车辆品牌型号
     */
    private String carBrandName;

    /**
     * 车型
     **/
    private String carModelValuationUuid;
}
